---
title: ProcessOB3PRetention dependencies
summary: Internal and external packages, API dependencies, and the consumed OnBase SOAP service for ProcessOB3PRetention.
status: draft
owner: Documents
last_reviewed: 2026-10-22
---

# ProcessOB3PRetention dependencies

The application depends on six internal SAIF packages and seven external packages, calls one REST API through `SAIF.Web.API.Clients`, and consumes one SOAP service. It has no database dependency.

## Internal dependencies

| Dependency | Reference Type | Project path | Usage |
| --- | --- | --- | --- |
| `SAIF.Framework.Windows` | NuGet Package | n/a | Console runner and lifecycle base classes (`SaifStandardProgramBase`, `ConsoleBase`, `StandardArgumentContainerBase`); version 4.8.26280.1 (stable, `.csproj`) |
| `SAIF.Framework.Core` | NuGet Package | n/a | `IEnvironmentService` and shared interfaces; version 4.8.26280.1 (stable, `.csproj`) |
| `SAIF.Framework.Common` | NuGet Package | n/a | Common extensions such as `ToStringAll`; version 4.8.26279.2 (stable, `.csproj`) |
| `SAIF.Web.API.Clients` | NuGet Package | n/a | `JsonHttpClient` used by `ImagingApiClient`; version 4.8.26280.3 (stable, `.csproj`) |
| `SAIF.Framework.Data.NHibernate` | NuGet Package | n/a | Registered by the framework but never used by application code; version 4.8.26279.4 (stable, `.csproj`) |
| `SAIF.HashUtil` | NuGet Package | n/a | Referenced but never used by application code; version 4.8.26280.2 (stable, `.csproj`) |

## External dependencies

| Dependency | Version | Usage |
| --- | --- | --- |
| Autofac | 3.5.2 | Dependency-injection container; used directly in `Program.cs` registrations |
| log4net | 2.0.17 | Framework logging dependency |
| RestSharp | 106.12.0 | Transitive HTTP client for `JsonHttpClient` |
| NHibernate | 4.0.3.4000 | Transitive via `SAIF.Framework.Data.NHibernate`; unused |
| FluentNHibernate | 2.0.1.0 | Transitive via `SAIF.Framework.Data.NHibernate`; unused |
| FluentValidation | 5.5.0.0 | Transitive framework dependency |
| Iesi.Collections | 4.0.1.4000 | Transitive via NHibernate; unused |

## Transitive dependencies

| Dependency | Source framework | Type | Usage |
| --- | --- | --- | --- |
| `IEnvironmentService` | `SAIF.Framework.Core` | Interface | Configuration-setting abstraction consumed by the application† |
| `WindowsEnvironmentService` | `SAIF.Framework.Core` | Service | Concrete implementation registered for `IEnvironmentService`; resolves configuration settings from the Environment API† |
| `IConsoleLogService` | `SAIF.Framework.Common` | Interface | Console logging abstraction consumed by the application† |
| `ConsoleLogService` | `SAIF.Framework.Windows` | Service | Concrete implementation registered for `IConsoleLogService`, writing stdout and stderr output† |
| `JsonHttpClient` | `SAIF.Web.API.Clients` | HTTP client | NTLM-authenticated JSON calls with retry; see API dependencies† |
| `IUnitOfWorkFactory` (named singletons) | `SAIF.Framework.Windows` | Registration | Registered by the framework; never resolved by this application† |

## API dependencies

| Endpoint | Method | Called from | Base URL config key | Source library | Reached via | Usage |
| --- | --- | --- | --- | --- | --- | --- |
| `/v1/integration/ThirdPartyRetention/toProcess?month={month}&day={day}&year={year}` | GET | `ImagingApiClient.GetClaimIdsForRetentionProcessing` (`ImagingApiClient.cs`) | `imagingapiurl` | `SAIF.Web.API.Clients` | This application: `ImagingApiClient.GetClaimIdsForRetentionProcessing` → `SAIF.Web.API.Clients`: `JsonHttpClient.GetResults<T>` | Returns claims due for retention on the processing date† |
| `v1/integration/ThirdPartyRetention/processed/mark?updateUser=ProcessOB3PRetention` | PUT | `ImagingApiClient.MarkRetentionClaimsAsProcessed` (`ImagingApiClient.cs`) | `imagingapiurl` | `SAIF.Web.API.Clients` | This application: `ImagingApiClient.MarkRetentionClaimsAsProcessed` → `SAIF.Web.API.Clients`: `JsonHttpClient.PutJson<T>` | Marks a batch of retention records as processed† |

`JsonHttpClient` authenticates with NTLM, sends `Client-Name`, `Application-ID`, and `Client-User` headers, and retries up to three times after one second on status 0, 502, 503, and 401.† The leading slash differs between the two paths as written in source; see [Tech debt](tech-debt.md).

## Service dependencies

| Service | Protocol | Called from | Address configuration | Usage |
| --- | --- | --- | --- | --- |
| OnBase Third Party Archival Service (`OBRetentionService`) | SOAP (`basicHttpBinding`, `Transport` security) | `OnBaseService.ProcessRetention` calling `HylandOutBoundContractClient.ArchiveDocument` | `ProcessOB3PRetention.WSPEndPointUrl` | Submits a batch of claim numbers for retention processing |
| Environment API | REST | `WindowsEnvironmentService` | `EnvironmentApiUrl` environment variable | Supplies configuration settings† |
| OpenTelemetry collector | OTLP | Framework telemetry | `OTEL_EXPORTER_OTLP_*` environment variables | Optional trace export |

The SOAP proxy is documented in the [OBRetentionService client documentation](../../clients/obretentionservice/index.md).

## Dependency risks and notes

- All six internal packages are declared as stable versions in the project file, which sets `RestoreProjectStyle` to `PackageReference`. The legacy `packages.config` was removed, so the project file is the only package manifest, and its versions are expected to govern restore.* What the CI restore step runs is defined outside this repository.* See [Tech debt](tech-debt.md).
- `SAIF.Framework.Data.NHibernate` and `SAIF.HashUtil` are unused, and the NHibernate stack adds dependencies the application does not need.
- There are no database connections, so no database section applies.

## Related documentation

| Documentation | Description |
| --- | --- |
| [Index](index.md) | Documentation entry point |
| [Overview](overview.md) | Purpose and capabilities |
| [Architecture](architecture.md) | Components and composition root |
| [Run lifecycle](run-lifecycle.md) | Execution flow and exit codes |
| [Arguments](arguments.md) | Argument contract |
| [Configuration](configuration.md) | Settings and environment variables |
| [Operations and processes](operations-processes.md) | Operation catalog |
| [Business rules](business-rules.md) | Rules enforced during processing |
| [Operational runbook](operational-runbook.md) | Run and recovery procedures |
| [Tech debt](tech-debt.md) | Technical debt observations |
| [OBRetentionService client](../../clients/obretentionservice/index.md) | Consumed SOAP proxy documentation |

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence.

## Sources

- `ProcessOB3PRetention/ProcessOB3PRetention.csproj`
- `ProcessOB3PRetention/Program.cs`
- `ProcessOB3PRetention/Services/ImagingApiClient.cs`
- `ProcessOB3PRetention/Services/OnBaseService.cs`
- `ProcessOB3PRetention/App.config`
